package Package.ConcurrentModificationExceptions;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Index_i {
    public static final void Index_i(){
        List<String> list = new ArrayList<String>();
        list.add("Hello");
        list.add("World");
        list.add("java");
        Iterator<String> li = list.iterator();
//        出现并发修改异常
//        while (li.hasNext()) {
//            if (li.next()=="World"){
//                list.add("javaee");
//            }
//        }
//        解决方案
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).equals("World")){
                list.add("javaee");
                System.out.println(list);
            }
        }
    }
}
//4并发修改异常【应用】
//出现的原因
//迭代器遍历的过程中，通过集合对象修改了集合中的元素，造成了迭代器获取元素中判断预期修改值和实际
//修改值不一致，则会出现：ConcurrentModificationException
//解决的方案
//用for循环遍历，然后用集合对象做对应的操作即可
